A wide variety of electronic devices are being equipped with a speech recognition capability. Examples include a vehicle navigation system capable of receiving voice commands for e.g. selecting a destination, computer systems for recognizing spoken text, or mobile telephones capable of dialing the number of a contact in response to a corresponding voice command. Often, a large number of entries or elements are provided in the form of a list, and one of these entries is to be selected by the user with a voice command. Examples of such lists comprising plural list entries are a list of location names or points of interest (POIs), a list of businesses, a list of addresses, a list of song titles, and the like. Such lists can comprise millions of entries. However, electronic devices, such as portable electronic devices, are often equipped with only a limited vocabulary of a speech recognizer. This often due to the limited processing capabilities and memory resources available on such a portable electronic device. It is thus difficult to select an entry from such a large list by voice command.
A solution for this problem is provided by WO 2004/077405 A1. The solution uses a two-step approach. A voice input from a user is converted into a character sequence, and the character sequence is matched against the list of entries to generate a sub-list. A matching step generally requires less processing power compared to a speech recognition step. A new vocabulary is then generated based on the sub-list, and the speech input is recognized using the new vocabulary. Although this method facilitates the handling of large lists of entries, it does not provide any concept for handling longer list entries. As an example, a list entry for a business may comprise both the name of the business and its address, i.e. street name and city. The list entry may thus comprise a plurality of words, such as “Autovermietung Euromobil Autohaus Starvenov GmbH Betrieb Nordstadt Bornhardtstraβe”. If the user would like to enter the business as a destination in e.g. a navigation system, the user may only speak some of the words of the entry, such as “Autovermietung Euromobil”, or may speak words of the entry in another order, such as “Euromobil Autovermietung”. A conventional speech recognition system will either not be capable of recognizing the corresponding entry when receiving such a speech input, or it will have a high probability of recognizing a false entry. Accordingly, the recognition of partially and/or permutedly spoken list entries is a problem in conventional speech recognition systems.
A possibility of recognizing partially spoken entries would be “Rolled out” recognition, in which all possible speakable alternatives or combinations are formed of the words of each list entry, and recognition is then performed on these alternatives. Yet even for short lists of only 10,000 entries there are as many as 1010 alternatives for list entries of the above-mentioned type. Performing of a speech recognition on a list of such a size is generally not possible with systems available today, in particular with hand-held systems, such as a personal navigation device, a personal digital assistant or a mobile telephone. Even lists with 107 entries can generally not be processed.
Accordingly, there is a need to enable the selection of a list entry by speech input even if the list entry is only partially or permutedly spoken. Further, there is a need of improving a recognition rate for partially or permutedly spoken list entries. It is desirable to enable a user to select a list entry from a large list of entries by voice input by only speaking a part of the list entry.